package com.itheima.tlias84.mapper;

import com.itheima.tlias84.dto.SelectEmpDTO;
import com.itheima.tlias84.dto.SelectEmpDetailDTO;
import com.itheima.tlias84.entity.Emp;
import com.itheima.tlias84.po.InsertDeptParam;
import com.itheima.tlias84.po.InsertEmpParam;
import com.itheima.tlias84.po.SelectEmpPageParam;
import com.itheima.tlias84.po.UpdateEmpParam;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 都是标识Dao层的注解
 * @Mapper  -》 mybatis 提供
 * @Repository -> 由Spring提供
 */
//@Repository
@Mapper
public interface EmpMapper {

    /**
     * 分页查询
     * @param param
     * @return
     */
    List<SelectEmpDTO> selectEmpByPage(@Param("p") SelectEmpPageParam param);

    /**
     * 全部查询用来回显班主任
     * @return
     */
    List<Emp> selectEmp();

    /**
     * 批量删除
     * @param ids
     * @return
     */
    int batchDelete(@Param("ids") List<Integer> ids);

    /**
     * 差入员工信息
     * @param param
     * @return
     */
    int insertEmp(@Param("p") InsertEmpParam param);

    /**
     * 更新
     * @param param
     * @return
     */
    int updateEmp(@Param("p") UpdateEmpParam param);

    /**
     * 通过id查询回显
     * @param id
     * @return
     */
    SelectEmpDetailDTO selectEmpById(@Param("id") Integer id);

    /**
     * 通过密码查信息比对登录
     * @param username
     * @return
     */
    @Select("select id,name,username,password from emp where username = #{username}")
    Emp selectEmpByUsername(@Param("username") String username);
}
